USHIFT-7381: Add PCP dashboard post step for MicroShift e2e jobs#82007
USHIFT-7381: Add PCP dashboard post step for MicroShift e2e jobs#82007suleymanakbas91 wants to merge 10 commits into
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: suleymanakbas91 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@suleymanakbas91, Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
WalkthroughAdds a PCP dashboard CI step that collects MicroShift performance artifacts, generates ChangesMicroShift PCP dashboard
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant E2EWorkflow
participant PCPDashboardStep
participant RemoteScenario
participant DashboardGenerator
participant ProwArtifacts
E2EWorkflow->>PCPDashboardStep: invoke post step
PCPDashboardStep->>RemoteScenario: retrieve PCP archives and junit.xml
PCPDashboardStep->>RemoteScenario: copy optional pmlogger logs
PCPDashboardStep->>DashboardGenerator: generate Test PCP dashboard
DashboardGenerator-->>ProwArtifacts: write custom-link-pcp.html
Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
✅ Passed checks (14 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@suleymanakbas91: This pull request references USHIFT-7381 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-commands.sh (1)
21-26: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick winMake optional pmlog copy failures explicit.
|| truesuppressesscp’s failure status, so permission or network errors are treated like an empty directory and the artifact may omit hypervisor metrics without a clear status. Keep this path non-blocking, but emit a warning or status marker.The PR objective says the dashboard includes hypervisor metrics while pmlogger collection is optional.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-commands.sh` around lines 21 - 26, Update the pmlog copy block around PMLOGS_DIR so scp failures remain non-blocking but are explicitly reported. Replace the silent `|| true` handling with a warning or status marker when the scp command fails, while preserving successful artifact copying and optional collection behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@ci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-commands.sh`:
- Around line 1-2: Remove the global xtrace option from the shell script’s
startup configuration, changing the top-level set command to enable only
errexit, nounset, and pipefail. Do not add replacement tracing around the
authenticated SSH/SCP operations.
---
Nitpick comments:
In
`@ci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-commands.sh`:
- Around line 21-26: Update the pmlog copy block around PMLOGS_DIR so scp
failures remain non-blocking but are explicitly reported. Replace the silent `||
true` handling with a warning or status marker when the scp command fails, while
preserving successful artifact copying and optional collection behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: b596178d-b81e-4dc0-a2bd-44a2a80eef59
📒 Files selected for processing (4)
ci-operator/step-registry/openshift/microshift/e2e/metal-tests/openshift-microshift-e2e-metal-tests-workflow.yamlci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/OWNERSci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-commands.shci-operator/step-registry/openshift/microshift/infra/pcp-dashboard/openshift-microshift-infra-pcp-dashboard-ref.yaml
|
Addressed the pmlog copy warning in 7de2372 — replaced silent |
|
@suleymanakbas91, Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
Add a new CI step that generates an interactive Chart.js PCP performance dashboard (CPU, memory, I/O, disk) from scenario VM and hypervisor PCP archives. The output is a custom-link-pcp.html artifact that Spyglass renders as a "Test PCP" toggle in Prow job results. Uses the edge-tooling-ai-helpers CI image which contains pcp2json and all PCP dashboard scripts — no script duplication needed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
710062f to
948c7ec
Compare
The flag was removed from generate-dashboard.sh — title is hardcoded. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse ci/rehearse/openshift/microshift/main/e2e-aws-tests |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@suleymanakbas91: job(s): ci/rehearse/openshift/microshift/main/e2e-aws-tests either don't exist or were not found to be affected, and cannot be rehearsed |
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
The scenario-info directory on the hypervisor uses symlinks for VM data. Without -L on find and -h on tar, pcp-archives.tar files behind symlinks are missed, producing an empty dashboard. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/retest |
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
The metal-tests step copies scenario-info (including pcp-archives.tar) to the shared artifacts volume. By the time our post step runs via SSH, these files are already cleaned up on the hypervisor. Check the shared volume first; fall back to SSH if unavailable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
The metal-tests step uploads scenario-info (including pcp-archives.tar) to GCS, but these files are cleaned up on the hypervisor before post steps run. Download pcp-archives.tar and junit.xml directly from the metal-tests step's GCS artifacts instead. Hypervisor pmlogs are still collected via SSH as they remain available. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/retest |
gsutil ls returns non-zero when no match is found, which kills the script under set -euo pipefail. Add || true so jobs without a metal-tests step (e.g. bootc) proceed to generate a hypervisor-only dashboard instead of failing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/pj-rehearse |
|
@suleymanakbas91: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
[REHEARSALNOTIFIER]
A total of 226 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs. A full list of affected jobs can be found here Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
@suleymanakbas91: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary
openshift-microshift-infra-pcp-dashboardCI step that generates interactive Chart.js PCP performance dashboards from VM/hypervisor PCP archivesopenshift-microshift-e2e-metal-testsworkflow, withbest_effort: trueso failures don't block the jobedge-tooling-ai-helpersCI image (has pcp2json + all PCP scripts) — no script duplicationThe output
custom-link-pcp.htmlwith<title>Test PCP</title>is automatically picked up by the existing Spyglass HTML lens and rendered as a collapsible "Test PCP" toggle alongside "Test Logs" and "VM Logs".Depends on
--localmode togenerate-dashboard.shTest plan
🤖 Generated with Claude Code